<?php
class ClasseController extends AppController {
    // var $helpers = array ('Html','Form');
    //errore:var $name = 'Pages'; // riferimento alla cartella delle view
    
    public function beforeFilter(){
    	
		parent::beforeFilter();
        $this->Auth->allow('save_disciplinadocente','remove_disciplinadocente');
		
		
    }
    
    public function index() {
    }
	
	public function view($idClasse=''){
    	$this->loadModel('ClasseDisciplinaDocente');
    	$this->loadModel('Studente');
    	$this->loadModel('Docente');
    	$this->loadModel('IndirizzoStudio');
        $this->Classe->recursive=3;
        $this->Classe->IndirizzoStudio->unbindModel(array("hasAndBelongsToMany"=>array("Disciplina")));
        $this->Classe->unbindModel(array("hasAndBelongsToMany"=>array("Disciplina")));
        $this->Classe->Studente->unbindModel(array("belongsTo"=>array("Classe")));
        $this->Classe->Studente->unbindModel(array("hasAndBelongsToMany"=>array("Evento")));
        $this->Classe->Docente->unbindModel(array("hasAndBelongsToMany"=>array('Disciplina')));
        $this->Classe->Docente->unbindModel(array("hasOne"=>array('Registro ')));
        $this->Classe->Docente->Ruolo->unbindModel(array("hasMany"=>array('Docente')));
		$classe=$this->Classe->read(null,$idClasse);
		$listStudentiFree = $this->Studente->find('all',array(
									    'conditions' => array('Studente.classe_id' => ''), //array of conditions
									));
		//$this->Docente->hasAndBelongsToMany['Classe']['conditions']=array('Classe.id <>'=>$idClasse);							
		// $listDocenti =$this->Docente->query("SELECT * FROM Docente 
                                                    // INNER JOIN User ON (docente.user_id = user.id )
                                                    // INNER JOIN Ruolo ON (docente.ruolo_id = ruolo.id)
                                                    // INNER JOIN Anagrafica ON (user.anagrafica_id = anagrafica.id )
                                                   // "); 
        $this->Docente->recursive=2;
        $this->Docente->unbindModel(array("hasOne"=>array("Registro")));
        $this->Docente->unbindModel(array("hasAndBelongsToMany"=>array("Disciplina","Classe")));
        $this->Docente->Disciplina->unbindModel(array("hasAndBelongsToMany"=>array("IndirizzoStudio")));
        $listDocenti = $this->Docente->find("all");
		
       /* $listDocentiClasse = $this->Docente->query("SELECT * FROM Docente 
                                                    INNER JOIN User ON (docente.user_id = user.id )
                                                    INNER JOIN Ruolo ON (docente.ruolo_id = ruolo.id)
                                                    INNER JOIN Anagrafica ON (user.anagrafica_id = anagrafica.id )
                                                    INNER JOIN classe_docente ON (docente.id = classe_docente.docente_id AND classe_docente.classe_id =".$idClasse." )
                                                   "); */
                                                   
                                                      
		$indStudioModel = $this->IndirizzoStudio->read(null,$classe['Classe']['indirizzo_studio_id']);
		$listClasseDisciplinaDocente = $this->ClasseDisciplinaDocente->findAllByClasse_id($idClasse);		
		$listIndirizziStudio = $this->IndirizzoStudio->find('all',array('conditions'=>array('visibile'=>'1')));
		$this->set('classe',$classe);
		$this->set('listDiscipline',$indStudioModel['Disciplina']);
		$this->set('listDocenti',$listDocenti);
		//$this->set('listDocentiClasse',$listDocentiClasse);
		$this->set('listStudentiFree',$listStudentiFree);
		$this->set('classeDisciplinaDocenteList',$listClasseDisciplinaDocente);
		$this->set('listIndirizziStudio',$listIndirizziStudio);
        //pr($listDocentiClasse);die;
	}
	
	
	
	public function save_disciplinadocente(){
		$this->layout="ajax";
		$this->autorender = false;
		$result = array();
		if($this->request->is('ajax'))
		{
			$this->loadModel('ClasseDisciplinaDocente');
			$this->ClasseDisciplinaDocente->read(null,$this->request->data['id']);
			$prove = $this->request->data['prove'];
			$this->ClasseDisciplinaDocente->set('docente_id' , $this->request->data['docente']);
			$this->ClasseDisciplinaDocente->set('ore_settimanali' , $this->request->data['oresett']);
			$this->ClasseDisciplinaDocente->set('scritto' , strpos($prove,'1')===false?'0':'1');
			$this->ClasseDisciplinaDocente->set('orale' , strpos($prove,'2')===false?'0':'1');
			$this->ClasseDisciplinaDocente->set('pratica' , strpos($prove,'3')===false?'0':'1');
			$this->ClasseDisciplinaDocente->set('altro' , strpos($prove,'4')===false?'0':'1');
			$this->ClasseDisciplinaDocente->set('prove_lista' , $prove);
			if($this->ClasseDisciplinaDocente->save()){
				 echo $result=array('msg' => __('salvato con successo'));
			}else{
				echo new Exception (__('Si è verificato un errore nel salvtaggio dell\'elemento'));
			}	
			
		}else
			echo $result=array('msg' => __('metodo non abilitato all\'accesso diretto.'));
	 	exit;
	}
	
	
		public function remove_disciplinadocente(){
		$this->layout="ajax";
		$this->autorender = false;
		$result = array();
		if($this->request->is('ajax'))
		{
			$this->loadModel('ClasseDisciplinaDocente');
			if($this->ClasseDisciplinaDocente->delete($this->request->data['id'],false)){
				 $result=array('msg' => __('salvato con successo'));
			}else{
				echo new Exception (__('Si è verificato un errore nel salvtaggio dell\'elemento'));
			}	
			
		}else
			$result=array('msg' => __('metodo non abilitato all\'accesso diretto.'));
		echo json_encode($result);
		exit;
	}
		
	/*
	 * Metodo per creare una nuova classe di base
	 * */
	public function create()
	{
		$this->loadModel('IndirizzoStudio');
		$this->Classe->create();
		$this->Classe->data = $this->request->data;
        $this->Classe->set('indirizzo_studio_id',$this->request->data['Classe']['IndirizzoStudio']);
		//$this->Classe->IndirizzoStudio = $modelIndirizzoStudio;
		if($this->Classe->save()){
			$this->Session->setFlash(__('Classe creata con successo!'));
		}
		$this->redirect('view/'.$this->Classe->id);
	}
		
}
?>